import rxAjax from '@/assets/js/ajax.js';
import { TokenUtil, Util } from "@lowcode/jpaas-base-lib";
/**
 * 知识库详情 API 接口对象
 * 包含了与知识库详情相关的所有 API 请求方法
 */
export const KnowledgeBaseDetailsApi = {
    // 基础 URL，用于构建具体的 API 请求 URL
    baseUrl: '/api-knowledge/knowledge/core/knowledgeBaseDetails',
    // 导出列表的 URL
    exportUrl: '/api-knowledge/knowledge/core/knowledgeBaseDetails/listExport',

    /**
     * 查询知识库详情列表
     * @param {Object} parameter - 查询参数对象
     * @returns {Promise<Object>} - 包含查询结果的 Promise 对象
     */
    query: (parameter) => {
        const url = `${KnowledgeBaseDetailsApi.baseUrl}/query`;
        return rxAjax.postJson(url, parameter).then((res) => res.result);
    },

    /**
     * 查询知识库详情列表
     * @param {Object} parameter - 查询参数对象
     * @returns {Promise<Object>} - 包含查询结果的 Promise 对象
     */
    queryList: (parameter) => {
        const url = `${KnowledgeBaseDetailsApi.baseUrl}/queryList`;
        return rxAjax.postJson(url, parameter);
    },

    /**
     * 获取单条知识库详情记录
     * @param {string} pkId - 知识库记录的主键 ID
     * @returns {Promise<Object>} - 包含单条记录的 Promise 对象
     */
    get: (pkId) => {
        const url = `${KnowledgeBaseDetailsApi.baseUrl}/get?pkId=${pkId}`;
        return rxAjax.get(url);
    },

    /**
     * 保存知识库详情数据
     * @param {Object} parameter - 要保存的数据对象
     * @returns {Promise<Object>} - 包含保存结果的 Promise 对象
     * type:(文件夹dir,页面page,文件file)
     */
    save: (parameter) => {
        const url = `${KnowledgeBaseDetailsApi.baseUrl}/save`;
        return rxAjax.postJson(url, parameter);
    },

    /**
     * 删除知识库详情数据
     * @param {Object} parameter - 要删除的数据对象
     * @returns {Promise<Object>} - 包含删除结果的 Promise 对象
     */
    del: (parameter) => {
        const url = `${KnowledgeBaseDetailsApi.baseUrl}/del`;
        return rxAjax.postUrl(url, parameter);
    },
    /**
     * 创建知识库文本
     * @param {Object} parameter
     * {
     *     "knowledgeId" : "知识库ID",
     *     "name":"文档名称",
     *     "content":"文档内容",
     *     "parentId":"父ID",
     * }
     * @returns {Promise<Object>} - 包含删除结果的 Promise 对象
     */
    createText: (parameter) => {
        const url = `${KnowledgeBaseDetailsApi.baseUrl}/createByText`;
        return rxAjax.postJson(url, parameter);
    },
    /**
     * 创建知识库文本
     * @param {Object} parameter
     * {
     *     "name":"文档名称",
     *     "content":"文档内容",
     *     "pkId":"主健",
     * }
     * @returns {Promise<Object>} - 包含删除结果的 Promise 对象
     */
    updateByText: (parameter) => {
        const url = `${KnowledgeBaseDetailsApi.baseUrl}/updateByText`;
        return rxAjax.postJson(url, parameter);
    },
};

export default KnowledgeBaseDetailsApi;
